Programmable logic controllers (PLC's) are commonly used in process control technology. As a part of process control, a PLC is used to monitor input signals from a variety of input points (input sensors), which report events and conditions occurring in a controlled process. A control program stored in memory of an operating system within the PLC enhances the PLC operating system by creating an environment in which other programs are run. Usually one of these programs in concert with the control program instructs the PLC what actions to take upon encountering particular input signals or conditions. For example, the PLC can monitor input conditions such as motor speed, temperature, pressure, volumetric flow and the like. The PLC can issue output signals to speed up or slow down a conveyer, rotate the arm of a robot, open or close a relay, raise or lower temperature as well as numerous other control functions. Input and outpoint points and related devices, signals, conditions and processes are generally referred to as “I/O” in the industry.
“Soft PLC” programs allow a high-end desktop computer, often with multiple processors, to simulate the operation of a special purpose central control computer. Such a soft PLC program functions as a central processing unit (CPU) to execute programs written in, for example, relay-ladder language to control plug-in I/O modules communicating control signals between the desktop computer and the controlled process.
FIG. 1 particularly shows a conventional method for accessing PLC memory in a system 300. As shown, the control program in the PLC (CPU) initiates a data transfer to the external entity or application. Alternatively, the application “requests” data from the PLC by scheduling an Organizational Block (OB) in the PLC control program, which then initiates the data transfer between the PLC and the application. In either case, the PLC control program is responsible for capturing data in a scan cycle and determining when the data is transferred. This methodology is very synchronous in nature since each request/response sequence must be handled as a single step in the control program.
FIG. 2 is somewhat similar to FIG. 1. As shown in FIG. 2, a conventional interface 400 between the PLC and the external application is established by an external I/O device or via a software application. If established by the latter, at least a portion of the software application is loaded into and becomes part of the PLC in order to share data with the external application through the established software interface.
There is an unmet need in the industry for more flexible access to the memory of the PLC for third party devices and software. This accessibility needs to be able to be triggered based on input from the external entity to the PLC, needs to be asynchronous in nature, and needs to provide access to PLC memory on demand from external sources that are not physically part of the PLC.